Fill in missing pieces to populate cadence from units like Edge 305.
authorrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Thu, 27 Apr 2006 20:07:28 +0000 (20:07 +0000)
committerrobertl <robertl@f51c46e8-681c-474f-0cfe-069cfd0219fb>
Thu, 27 Apr 2006 20:07:28 +0000 (20:07 +0000)
gpsbabel/Makefile.in
gpsbabel/defs.h
gpsbabel/garmin.c
gpsbabel/jeeps/gps.h
gpsbabel/jeeps/gpsapp.c

index f48e7e5e48eaacace02a99acd0ab8e2851aeaf9e..528c765cea2089cb1298b55c1b2e3466e144808a 100644 (file)
@@ -3,7 +3,7 @@ VPATH = @srcdir@
 VERSU=1_2_8
 VERSD=1.2.8
 # YYYYMMDD, please, if beta.
-RELEASE=-beta20060420-ds
+RELEASE=-beta20060423-GSAK
 VERSIONU=$(VERSU)$(RELEASE)
 VERSIOND=$(VERSD)$(RELEASE)
 
index b651c0a33a29b866ad306755bff3f9cb2d380205..268093706df4f81a858202fa4e185073061545cd 100644 (file)
@@ -323,7 +323,8 @@ typedef struct {
        fix_type fix;   /* Optional: 3d, 2d, etc. */
        int  sat;       /* Optional: number of sats used for fix */
 
-       int heartrate;   /* Beats per minute: likely to get moved to fs. */
+       unsigned char heartrate; /* Beats/min. likely to get moved to fs. */
+       unsigned char cadence;   /* revolutions per minute */
        float temperature; /* Degrees celsius */
        geocache_data gc_data;
        format_specific_data *fs;
index 9ebaa85b49f0ccd6ebb71c5b6b12c549b1290c23..5343db3ac3fdc5c785ae48e309e800f963912322 100644 (file)
@@ -331,6 +331,7 @@ track_read(void)
                wpt->latitude = array[i]->lat;
                wpt->altitude = array[i]->alt;
                wpt->heartrate = array[i]->heartrate;
+               wpt->cadence = array[i]->cadence;
                wpt->shortname = xstrdup(array[i]->trk_ident);
                wpt->creation_time = array[i]->Time;
                
index 3a0c66e86220cab11cbbf961b9a03bb641ae2d3a..93ca4bf9134787aed94f305d3ad9fb6ac44d5b1f 100644 (file)
@@ -88,7 +88,8 @@ typedef struct GPS_STrack
     float    dpth;             /* Depth    */
     float    temperature;      /* Temperature.  Degrees Celsius. */
     int      temperature_populated; /* True if above is valid. */
-    int32    heartrate;                /* Heatrate as in Garmin 301 */
+    unsigned char  heartrate;          /* Heartrate as in Garmin 301 */
+    unsigned char  cadence;            /* Crank cadence as in Edge 305 */
     unsigned int   tnew:1;     /* New track? */
     unsigned int   ishdr:1;    /* Track header? */
     unsigned int   no_latlon:1;        /* True if no valid lat/lon found. */
index dbe5dc422a1c45c1ff5e30b227b74e57f1f12dfd..6c37f910cb33cc209d1a54e843c6d07ea9153166 100644 (file)
@@ -4012,9 +4012,13 @@ int i;
     switch (gps_trk_type) {
     case pD304:
        p+=4; /* A float indicating number of meters travelled. */
+       
        (*trk)->heartrate = (*p++);
        /* crank cadence, RPM, 0xff if invalid.  */
-       p++;
+       if (*p != 0xff) {
+               (*trk)->cadence = (*p);
+       }
+
        /* sensor present.  Boolean */
        p++;